ConnectionSettings.java
package org.codefilarete.stalactite.engine;
/**
* Settings for database connections, including batch size for write operations and fetch size for read operations.
* - Batch size controls how many statements are sent to the database in one batch during write operations.
* - Fetch size controls how many rows are retrieved at once from the database during read operations.
* Both act as a performance optimization parameter when writing and retrieving data respectively.
*
* @author Guillaume Mary
*/
public class ConnectionSettings {
public static final int DEFAULT_BATCH_SIZE = 20;
/**
* Batch size for write statements requested to the database. Default value is {@value #DEFAULT_BATCH_SIZE}
*/
private final int batchSize;
/**
* Fetch size for select statements requested to the database. If null, then default value from JDBC
* {@link java.sql.Connection} will be used.
*/
private final Integer fetchSize;
public ConnectionSettings() {
this(DEFAULT_BATCH_SIZE);
}
public ConnectionSettings(int batchSize) {
this(batchSize, null);
}
public ConnectionSettings(int batchSize, Integer fetchSize) {
this.batchSize = batchSize;
this.fetchSize = fetchSize;
}
/**
* Gets the batch size for write operations.
* @return the batch size for write operations, {@value #DEFAULT_BATCH_SIZE} by default
*/
public int getBatchSize() {
return batchSize;
}
/**
* Gets the fetch size for read operations.
* @return null if the default JDBC driver value is used
*/
public Integer getFetchSize() {
return fetchSize;
}
}